package com.zsc.roadsys.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.zsc.roadsys.domain.PageDomain;
import com.zsc.roadsys.dto.UserDto;
import com.zsc.roadsys.entity.User;

/**
 * @author haoran
 */

public interface UserService extends IService<User> {
    /**
     * 通过username查询用户详情信息
     * @param username 用户名
     * @return User user
     */
    public User getUserByUsername(String username);

    /**
     * 通过id查询用户详情信息
     * @param id 用户id
     * @return User user
     */
    public User getUserById(Long id);

    /**
     * 根据用户信息分页查询用户列表
     *
     * @param pageDomain 分页信息
     * @param user
     * @return
     */
    public PageInfo<User> listUser(PageDomain pageDomain, User user);

    /**通过 id 删除用户
     * @param id 用户id
     * @return boolean 成功/失败
     */
    public boolean deleteUser(Long id);

    /** 更新用户数据
     * @param userDto 用户信息 : userId, roleId, password, email, phone, enable
     * @return User
     */
    public User updateUser(UserDto userDto);

    /** 激活/停用账户
     * @param id 用户id
     * @param status 激活状态
     */
    public void updateStatusById(Long id, Long status);

    /** 添加用户
     * @param user
     */
    public void insertUser(User user);

    /**
     * 通过时间创建username
     * */
    public String CrUserIdByTime();
}
